# pyDoc
# 介绍pyDoc系统把模块内的文档，渲染成shell中的普通文本或是浏览器中的html页面

# 文档资源
"""
注释
dir函数
文档字符串：__doc__
PyDoc: help函数
PyDoc: HTML报告
Sphinx 第三方工具
标准手册集
网络资源
已出版的书籍
"""

# 文档字符串
# 语法上讲，这种注释被写成字符串，放在模块文件、函数以及类语句的顶部，位于可执行代码之前。python会自动装载文档字符串的文本，使其成为响应对象的__doc__属性
"""
Module Document
Words Go Here
"""

spam = 40


def square(x):
    """
    function documentation
    Cam we have your liver then ?
    """
    return x ** 2  # square


class Employee:
    """class Document"""
    pass


print(square(4))
print(square.__doc__)
print(Employee.__doc__)

#  PyDoc : html 报告

# 启动: 命令行中输入.
"""
1 pydoc -g 
2 python -m pydoc -b
3 py -3 -m pydoc -b
"""


# def adder(x):
#   print(x)

def adder(x, y):
    print(x + y)


print('*' * 12)
adder(11, 22)
adder('11', '22')
adder([1, 2, 3], [2, 3, 4])
adder((1, 2, 3), (2, 3, 4))


def permuter2(seq):
    if not seq:
        print("---")
        yield seq
    else:
        for i in range(len(seq)):
            rest = seq[:i] + seq[i+1:]
            print("REST: ", rest)
            for x in permuter2(rest):
                print("result: ", seq[i:i+1] + x)
                yield seq[i:i+1] + x

# print(list(permuter2('spam')))


for i in permuter2('spam'):
    print("=====",i)